home *** CD-ROM | disk | FTP | other *** search
- function loadImage(mc, node, extrapath)
- {
- if(extrapath == null)
- {
- extrapath = "";
- }
- var strDefaultPath = Tardis.ASSETS_FOLDER + "images/" + Tardis.ActiveSection.id + "/";
- var strImg = node.firstChild.nodeValue;
- var diffpath = node.attributes.path;
- if(diffpath != null)
- {
- strImg = diffpath + strImg;
- }
- else
- {
- strImg = strDefaultPath + extrapath + strImg;
- }
- if(strPathPrefix == null)
- {
- strPathPrefix = "";
- }
- mc.loadMovie(strPathPrefix + strImg);
- }
- function init()
- {
- parseContent(nodeData);
- createPages();
- fillContent();
- onComplete();
- _visible = true;
- }
- function loadSampleContent(strName)
- {
- this.xmlContent = new XML();
- this.xmlContent.ignoreWhite = true;
- this.xmlContent.onLoad = function(success)
- {
- if(success)
- {
- parseContent(this.firstChild);
- createPages();
- fillContent();
- }
- };
- this.xmlContent.load("sample_xml/" + strName + ".xml");
- }
- function parseBoldTags(str)
- {
- var openTagPosition = str.indexOf("<b>");
- if(openTagPosition != -1)
- {
- var closeTagPosition = str.indexOf("</b>");
- var word = str.substring(openTagPosition + 3,closeTagPosition);
- var beginning = str.substring(0,openTagPosition).toString();
- var end = str.substring(closeTagPosition + 4);
- return beginning + "<font face=\'FranklinGotURWTDem\'>" + word + "</font>" + parseBoldTags(end);
- }
- return str;
- }
- function createPages()
- {
- var i = 0;
- while(i < arrPages.length)
- {
- var mPage = i != 0 ? mPage_0.duplicateMovieClip("mPage_" + i,i) : mPage_0;
- mPage._visible = false;
- i++;
- }
- }
- function fillContent()
- {
- var strID = Tardis.ActiveSection.id;
- SECTION_COLOR = Tardis.Colors.getHex(strID);
- SECTION_COLOR50 = Tardis.Colors.getHex(strID + "50");
- DEFAULT_COLOR = Tardis.Colors.getHex("default");
- DEFAULT_COLOR50 = Tardis.Colors.getHex("default50");
- strDEFAULT_COLOR50 = Tardis.Colors.getString("default50");
- var arrFields = new Array();
- var i = 0;
- while(i < arrPages.length)
- {
- var mPage = this["mPage_" + i];
- mPage.gotoAndStop("layout_" + arrPages[i].type);
- mPage.headline = arrPages[i].headline;
- mPage.quote = arrPages[i].quote;
- mPage.arrImages = arrPages[i].arrImages;
- mPage.defaultVideoNumber = arrPages[i].defaultVideoNumber;
- if(mPage.txtBody_0 != undefined)
- {
- arrFields.push("mPage_" + i + ".txtBody_0");
- }
- if(mPage.txtBody_1 != undefined)
- {
- arrFields.push("mPage_" + i + ".txtBody_1");
- }
- i++;
- }
- var boldedCopy = parseBoldTags(strCopy);
- flowText(boldedCopy,arrFields);
- mPageNav.setColourUp(DEFAULT_COLOR50);
- mPageNav.setColourDown(DEFAULT_COLOR);
- mPageNav.setTotalPages(arrPages.length);
- mPageNav.navigateTo(1);
- _visible = true;
- }
- function parseContent(xmlContent)
- {
- var arrNodes = xmlContent.childNodes;
- this.arrPages = new Array();
- this.arrVideos = new Array();
- var i = 0;
- while(i < arrNodes.length)
- {
- if(arrNodes[i].nodeName == "copy")
- {
- this.strCopy = arrNodes[i].firstChild.nodeValue;
- }
- else if(arrNodes[i].nodeName == "page")
- {
- var page = {type:arrNodes[i].attributes.type,arrImages:new Array()};
- var arrChildren = arrNodes[i].childNodes;
- var j = 0;
- while(j < arrChildren.length)
- {
- if(arrChildren[j].nodeName == "image")
- {
- var image = {};
- for(var k in arrChildren[j].childNodes)
- {
- image[arrChildren[j].childNodes[k].nodeName] = arrChildren[j].childNodes[k].firstChild.nodeValue;
- }
- if(arrChildren[j].byName("image").attributes.fullscreen == "true")
- {
- image.hasFullscreen = true;
- }
- else
- {
- image.hasFullscreen = false;
- }
- if(image.image != "" && image.image != null)
- {
- page.arrImages.push(image);
- }
- }
- else if(arrChildren[j].nodeName == "video")
- {
- page.defaultVideoNumber = arrChildren[j].firstChild.nodeValue;
- }
- else
- {
- page[arrChildren[j].nodeName] = arrChildren[j].firstChild.nodeValue;
- }
- j++;
- }
- arrPages.push(page);
- }
- else if(arrNodes[i].nodeName == "videos")
- {
- var arrChildren = arrNodes[i].childNodes;
- var j = 0;
- while(j < arrChildren.length)
- {
- var vid = new Object();
- vid.nodeData = arrChildren[j];
- var k = 0;
- while(k < arrChildren[j].childNodes.length)
- {
- vid[arrChildren[j].childNodes[k].nodeName] = arrChildren[j].childNodes[k].firstChild.nodeValue;
- k++;
- }
- arrVideos[arrChildren[j].attributes.id] = vid;
- j++;
- }
- }
- i++;
- }
- }
- function parseUpCaps(str)
- {
- var openTagPosition = str.indexOf("<upcap>");
- if(openTagPosition != -1)
- {
- var closeTagPosition = str.indexOf("</upcap>");
- var word = str.substring(openTagPosition + 7,closeTagPosition);
- var beginning = str.substring(0,openTagPosition);
- var end = str.substring(closeTagPosition + 8);
- return beginning + "<TEXTFORMAT LEADING=\'-2\'><font size=\'24\' face=\'FranklinNeoExtBolCon\' color=\'#999999\'>" + word + "</font></TEXTFORMAT> " + end;
- }
- return str;
- }
- function navigateTo(pageNumber)
- {
- mVideo.shutDownRemotely();
- var id = pageNumber - 1;
- var i = 0;
- while(i < arrPages.length)
- {
- this["mPage_" + i]._visible = false;
- i++;
- }
- var mc = this["mPage_" + id];
- if(mc.arrImages.length)
- {
- loadImages(mc);
- }
- if(mc.defaultVideoNumber != null)
- {
- playVideo(mc.defaultVideoNumber);
- mc.txtNote_0.htmlText = "";
- }
- if(arrPages[id].type == "12")
- {
- mc.txtQuote._y = mc.txtHeadline._y + mc.txtHeadline.textHeight + 12;
- }
- mc.txtBody_0.textColor = DEFAULT_COLOR;
- mc.txtBody_1.textColor = DEFAULT_COLOR;
- mc.txtHeadline.textColor = SECTION_COLOR;
- mc.txtQuote.textColor = SECTION_COLOR50;
- mc.txtNote_0.textColor = DEFAULT_COLOR;
- mc._visible = true;
- currPage = mc;
- if(arrPages[id].type == "10")
- {
- mPageNav._visible = false;
- }
- else
- {
- mPageNav._visible = true;
- }
- mPageNav.setCurrentPage(pageNumber);
- }
- function loadImages(mPage)
- {
- var strDefaultPath = Tardis.ASSETS_FOLDER + "images/" + Tardis.ActiveSection.id + "/";
- var i = 0;
- while(i < mPage.arrImages.length)
- {
- mPage["mImage_" + i].loadMovie(strDefaultPath + mPage.arrImages[i].image);
- mPage["txtCaption_" + i].htmlText = mPage.arrImages[i].caption;
- mPage["txtCaption_" + i].textColor = DEFAULT_COLOR;
- if(mPage.arrImages[i].hasFullscreen)
- {
- mPage.mc_controls._visible = true;
- }
- else
- {
- mPage.mc_controls._visible = false;
- }
- mPage["txtNote_" + i].htmlText = mPage.arrImages[i].note;
- mPage["txtNote_" + i].textColor = DEFAULT_COLOR;
- i++;
- }
- }
- function playVideo(videoId)
- {
- this.currVideoId = videoId;
- mVideo.shutDownRemotely();
- this.onVideoModuleLoaded = function(mVideo)
- {
- mVideo.nodeData = arrVideos[currVideoId].nodeData;
- mVideo.init();
- currPage.txtCaption_0.htmlText = arrVideos[currVideoId].title;
- currPage.txtCaption_0.textColor = Tardis.Colors.getHex("default");
- };
- mVideo.loadMovie(Tardis.ENGINE_FOLDER + "modules/video.swf");
- }
- function searchandreplace(the_string, search_string, replace_string, occurrences, backward)
- {
- if(search_string == replace_string)
- {
- return the_string;
- }
- var found = 0;
- if(backward == true)
- {
- var pos = the_string.lastIndexOf(search_string);
- while(pos >= 0)
- {
- found++;
- var start_string = the_string.substr(0,pos);
- var end_string = the_string.substr(pos + search_string.length);
- the_string = start_string + replace_string + end_string;
- pos = the_string.lastIndexOf(search_string,start_string.length);
- if(found == occurrences)
- {
- pos = -1;
- }
- }
- }
- else
- {
- var pos = the_string.indexOf(search_string);
- while(pos >= 0)
- {
- found++;
- var start_string = the_string.substr(0,pos);
- var end_string = the_string.substr(pos + search_string.length);
- the_string = start_string + replace_string + end_string;
- pos = the_string.indexOf(search_string,pos + replace_string.length);
- if(found == occurrences)
- {
- pos = -1;
- }
- }
- }
- return the_string;
- }
- function tagStack(aString)
- {
- var error = false;
- var tagArray = [];
- var validTags = ["a","b","i","u","font","p"];
- var tStringArray = aString.split("<");
- var i = 1;
- while(i < tStringArray.length)
- {
- var newTag = "<" + tStringArray[i].slice(0,tStringArray[i].indexOf(">") + 1);
- var shortForm = newTag.indexOf(" ") <= -1 ? newTag : newTag.slice(0,newTag.indexOf(" ")) + ">";
- var tagOnly = shortForm.indexOf("/") <= -1 ? shortForm.slice(1,-1) : shortForm.slice(2,-1);
- isValidTag = false;
- for(var j in validTags)
- {
- if(validTags[j] == tagOnly)
- {
- isValidTag = true;
- break;
- }
- }
- if(isValidTag)
- {
- if(newTag.charAt(1) == "/")
- {
- var lastTag = tagArray.pop();
- lastTagShort = lastTag.indexOf(" ") <= -1 ? lastTag : lastTag.slice(0,lastTag.indexOf(" ")) + ">";
- lastTagShort = lastTagShort.indexOf("/") <= -1 ? lastTagShort.slice(1,-1) : lastTagShort.slice(2,-1);
- if(lastTagShort != tagOnly)
- {
- error = true;
- break;
- }
- }
- else
- {
- tagArray.push(newTag);
- }
- }
- i++;
- }
- return !error ? tagArray : -1;
- }
- function fixText(textString)
- {
- var tempText = searchandreplace(textString,String.fromCharCode(13)," <br>");
- tempText = searchandreplace(textString,"\n"," <br>");
- tempText = searchandreplace(textString,"\r"," <br>");
- tempText = searchandreplace(tempText,String.fromCharCode(9)," ");
- var textArray = tempText.split(" ");
- return textArray;
- }
- function flowText(textString, arrayOfTextFields)
- {
- var textArray = fixText(textString);
- var currentWordIndex = 0;
- var currentFieldIndex = 0;
- var maxWordIndex = textArray.length;
- var timeArray = [];
- var leftOverTags = "";
- var i;
- var lastWord = 0;
- for(i in arrayOfTextFields)
- {
- eval(arrayOfTextFields[i]).html = false;
- eval(arrayOfTextFields[i]).text = "";
- eval(arrayOfTextFields[i]).htmlText = "";
- }
- do
- {
- if(currentWordIndex < maxWordIndex)
- {
- var field = eval(arrayOfTextFields[currentFieldIndex]);
- var tempString = "";
- field.html = true;
- if(textArray[currentWordIndex].indexOf("<br>") != -1)
- {
- textArray[currentWordIndex] = searchandreplace(textArray[currentWordIndex],"<br>","");
- }
- i = currentWordIndex;
- while(i < maxWordIndex)
- {
- var newWord = textArray[i];
- newWord = newWord != "<br>" ? newWord + " " : newWord;
- tempString += newWord;
- field.htmlText = "";
- field.htmlText = tempString;
- if(field.maxscroll > 1)
- {
- lastWord = i;
- break;
- }
- i++;
- }
- }
- else
- {
- return true;
- }
- field.htmlText = "";
- var endAt = i;
- field.htmlText = leftOverTags + textArray.slice(currentWordIndex,endAt).join(" ");
- leftOverTags = tagStack(textArray.slice(0,endAt).join(" ")).join("");
- currentWordIndex = endAt;
- currentFieldIndex++;
- }
- while(currentFieldIndex <= arrayOfTextFields.length);
-
- var leftOverText = textArray.slice(lastWord,textArray.length).join(" ");
- return leftOverText;
- }
- _visible = false;
- this.onUnload = function()
- {
- mVideo.shutDownRemotely();
- Tardis.overlay.active = false;
- };
-